package com.ruoyi.common.core.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.util.Date;
import java.util.List;

/**
 * 活动数据实体类（外层类）
 */
@Data
public class DataPushActivity {
    /**
     * 第三方 appId
     */
    private String appId;
    /**
     * 第三方业务ID
     */
    private String thirdPartyBusinessId;
    /**
     * 活动ID，唯一性标识，依次增长
     */
    private Long activityId;

    /**
     * 活动名称
     */
    private String activityName;

    /**
     * 活动时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date activityStartDate;

    /**
     * 活动时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date activityEndDate;

    /**
     * 分组列表
     */
    private List<ActivityGroup> groups;

    /**
     * 活动分组实体类（内部类）
     */
    @Data
    public static class ActivityGroup {
        /**
         * 第三方业务ID
         */
        private String thirdPartyBusinessId;
        /**
         * 分组ID
         */
        private Long activityGroupId;

        /**
         * 分组名称
         */
        private String groupName;

        /**
         * 组长信息
         */
        private GroupLeader groupLeader;

        /**
         * 分组专家列表
         */
        private List<GroupExpert> experts;
    }

    /**
     * 分组专家数据实体类（内部类）
     */
    @Data
    public static class GroupExpert {
        /**
         * 唯一标识ID
         */
        private Long id;

        /**
         * 专家ID
         */
        private Long expertId;

        /**
         * 专家姓名
         */
        private String name;

        /**
         * 联系电话
         */
        private String contactPhone;

        /**
         * 专业组
         */
        private String expertGroups;

        /**
         * 单位
         */
        private String workUnit;



        /**
         * 性别
         */
        @Excel(name = "性别")
        private String gender;

        /**
         * 身份证号码
         */
        @Excel(name = "身份证号码")
        private String idNumber;

        /**
         * 年龄
         */
        private Integer age;

        /**
         * 民族
         */
        @Excel(name = "民族")
        private String nationality;
        /**
         * 所属行业
         */
        @Excel(name = "所属行业")
        private String workIndustry;
        /**
         * 学历
         */
        @Excel(name = "学历")
        private String educationLevel;

        /**
         * 毕业院校
         */
        @Excel(name = "毕业院校")
        private String graduatedInstitution;

        /**
         * 所学专业
         */
        @Excel(name = "所学专业")
        private String major;

        /**
         * 职称
         */
        @Excel(name = "职称")
        private String title;

        /**
         * 专家级别
         */
        @Excel(name = "专家级别")
        private String expertLevel;

        /**
         * 专业组编号
         */
        @Excel(name = "专业组编号")
        private String expertGroupIds;

        /**
         * 照片
         */
        private String photo;

        /**
         * 现从事专业
         */
        @Excel(name = "现从事专业")
        private String currentSpecialty;

        /**
         * 职务
         */
        @Excel(name = "职务")
        private String position;

        /**
         * 统一社会信用代码
         */
        @Excel(name = "统一社会信用代码")
        private String unifiedSocialCreditCode;

        /**
         * 工作情况
         */
        @Excel(name = "工作情况")
        private String workStatus;

        /**
         * 专家等级
         */
        @Excel(name = "专家等级")
        private String expertRank;

        /**
         * 工作简历
         */
        @Excel(name = "工作简历")
        private String workResume;

        /**
         * 发明专利著作学术论文情况
         */
        @Excel(name = "发明专利著作学术论文情况")
        private String inventionsPatentsPublications;

        /**
         * 受过何种表彰奖励
         */
        @Excel(name = "受过何种表彰奖励")
        private String honorsAwards;

        /**
         * 与应急管理相关的专业技术工作业绩
         */
        @Excel(name = "与应急管理相关的专业技术工作业绩")
        private String emergencyManagementPerformance;

        /**
         * 个人承诺
         */
        @Excel(name = "个人承诺")
        private String personalPromise;

        /**
         * 一般建议数量
         */
        private Integer generalDangerCount;

        /**
         * 重要建议数量
         */
        private Integer majorDangerCount;

        /**
         * 得分
         */
        private Long score;
    }

    /**
     * 参与活动分组组长数据实体类（内部类）
     */
    @Data
    public static class GroupLeader {
        /**
         * 组长姓名
         */
        private String name;

        /**
         * 联系电话
         */
        private String contactPhone;

        /**
         * 单位
         */
        private String workUnit;
    }
}